﻿using System;
using System.Collections.Generic;
using SystemModule;

namespace M2Server
{
    public partial class TPlayObject
    {
        #region 变量区
        /// <summary>
        /// 野蛮冲撞间隔
        /// </summary>
        public uint m_dwDoMotaeboTick = 0;
        /// <summary>
        /// 人物死亡地图
        /// </summary>
        public string m_sLastMapName;
        /// <summary>
        /// 人物死亡地图所在座标X(4字节)
        /// </summary>
        public int m_nLastCurrX = 0;
        /// <summary>
        /// 人物死亡地图所在座标Y(4字节)
        /// </summary>
        public int m_nLastCurrY = 0;
        /// <summary>
        /// 发言次数
        /// </summary>
        public int m_nSayMsgCount = 0;
        /// <summary>
        /// 发言间隔
        /// </summary>
        public uint m_dwSayMsgTick = 0;
        public bool m_boDisableSayMsg = false;
        public uint m_dwDisableSayMsgTick = 0;
        public uint m_dwCheckDupObjTick = 0;
        public uint dwTick578 = 0;
        public uint dwTick57C = 0;
        public bool m_boInSafeArea = false;
        /// <summary>
        /// 登录帐号名
        /// </summary>
        public string m_sUserID;
        /// <summary>
        /// 人物IP地址
        /// </summary>
        public string m_sIPaddr;
        public string m_sIPLocal = string.Empty;// IP所属地区
        public byte m_btDeputyHeroJob = 0; // 双英雄变量
        public bool m_boHasDeputyHero = false;// 是否有主副将英雄
        public string m_sDeputyHeroCharName;// 副将英雄名称
        public uint m_nRecallDeputyHeroTime = 0;// 召唤副将英雄间隔时间
        public string m_sAssessHeroMsg = string.Empty;// 主副将英雄信息
        public TAssessHeroDataInfo[] AssessHeroDataInfo = new TAssessHeroDataInfo[1];
        public string sName1 = string.Empty;
        public string sName2 = string.Empty;
        public bool m_boHeroAutoTraining = false;// 副将英雄是否正在自动修炼
        public object m_nUserCmdNPC = null;
        public DateTime m_dLogonTime;// 登录时间
        public uint m_dwLogonTick = 0;// 在线时长
        /// <summary>
        /// 是否进入游戏完成
        /// </summary>
        public bool m_boReadyRun = false;
        /// <summary>
        /// 会话ID
        /// </summary>
        public int m_nSessionID = 0;
        /// <summary>
        /// 人物当前模式(测试/付费模式)
        /// </summary>
        public int m_nPayMent = 0;
        /// <summary>
        /// 付费模式
        /// </summary>
        public int m_nPayMode = 0;
        /// <summary>
        /// 人物当前所在服务器序号
        /// </summary>
        public int m_nServerIndex = 0;
        /// <summary>
        /// 掉线标志
        /// </summary>
        public bool m_boEmergencyClose = false;
        /// <summary>
        /// 小退
        /// </summary>
        public bool m_boSoftClose = false;
        /// <summary>
        /// 踢人下线,断线标志(@kick 命令)
        /// </summary>
        public bool m_boKickFlag = false;
        /// <summary>
        /// 重新连接标志
        /// </summary>
        public bool m_boReconnection = false;
        /// <summary>
        /// 是否正在保存数据
        /// </summary>
        public bool m_boRcdSaveding = false;
        /// <summary>
        /// 是否保存数据
        /// </summary>
        public bool m_boRcdSaved = false;
        public bool m_boSwitchData = false;
        public bool m_boSwitchDataOK = false;
        public bool m_boSwitchDataNeedDelay = false;
        /// <summary>
        /// 写入数据库错误次数
        /// </summary>
        public int m_nWriteChgDataErrCount = 0;
        /// <summary>
        /// 切换目标地图名称
        /// </summary>
        public string m_sSwitchMapName = string.Empty;
        public int m_nSwitchMapX = 0;
        public int m_nSwitchMapY = 0;
        public bool m_boSwitchDataSended = false;
        public uint m_dwChgDataWritedTick = 0;
        public int m_nSocket = 0;
        /// <summary>
        /// 人物连接到游戏网关SOCKET ID
        /// </summary>
        public int m_nGSocketIdx = 0;
        /// <summary>
        /// 人物所在网关号
        /// </summary>
        public int m_nGateIdx = 0;
        /// <summary>
        /// 版本日期
        /// </summary>
        public int m_nSoftVersionDate = 0;
        /// <summary>
        /// 脚本标签
        /// </summary>
        public string m_sScriptLable = string.Empty;
        /// <summary>
        /// 由功能插件调用 0-倒计时触发QF段(客户端显示时间) 1-商铺购买间隔 2-倒计时触发QF段 3-定时发时间给客户端，保持统一
        /// </summary>
        public uint[] m_dwUserTick = new uint[3];
        /// <summary>
        /// SENDTIMEMSG命令设置的触发段
        /// </summary>
        public string m_sMapQFStr = string.Empty;
        /// <summary>
        /// SENDMSGWINDOWS命令设置的触发段
        /// </summary>
        public string m_sMapQFStr1 = string.Empty;
        /// <summary>
        /// 换地图是否还显示倒计时信息
        /// </summary>
        public bool m_boForMapShowHint = false;
        /// <summary>
        /// 是否显示天地结晶图标
        /// </summary>
        public bool m_boShowExpCrystal = false;
        /// <summary>
        /// 天地结晶等级
        /// </summary>
        public byte m_CrystalLevel = 0;
        /// <summary>
        /// 天地结晶当前经验
        /// </summary>
        public int m_CrystalExp = 0;
        /// <summary>
        /// 天地结晶升级经验
        /// </summary>
        public int m_CrystalMaxExp = 0;
        /// <summary>
        /// 天地结晶当前内功经验
        /// </summary>
        public int m_CrystalNGExp = 0;
        /// <summary>
        /// 天地结晶内功升级经验
        /// </summary>
        public int m_CrystalNGMaxExp = 0;
        /// <summary>
        /// 是否可以提取经验
        /// </summary>
        public bool m_boGetExpCrystalExp = false;
        /// <summary>
        /// 可提取天地结晶经验
        /// </summary>
        public int m_nGetCrystalExp = 0;
        /// <summary>
        /// 天可提取地结晶内功经验
        /// </summary>
        public int m_nGetCrystalNGExp = 0;
        public uint m_dwSayMyInfoTick = 0;
        /// <summary>
        /// 正在购买商铺物品中
        /// </summary>
        public bool m_boBuyShopItem = false;
        /// <summary>
        /// 正在交易中
        /// </summary>
        public bool m_boDealing = false;
        /// <summary>
        /// 交易最后操作时间
        /// </summary>
        public uint m_DealLastTick = 0;
        /// <summary>
        /// 交易的主动方
        /// </summary>
        public TPlayObject m_DealCreat = null;
        /// <summary>
        /// 组队队长
        /// </summary>
        public TPlayObject m_GroupOwner = null;
        /// <summary>
        /// 组成员列表
        /// </summary>
        public List<TPlayObject> m_GroupMembers = null;
        /// <summary>
        /// 允许私聊
        /// </summary>
        public bool m_boHearWhisper = false;
        /// <summary>
        /// 允许群聊
        /// </summary>
        public bool m_boBanShout = false;
        /// <summary>
        /// 允许接收所有喊话
        /// </summary>
        public bool m_boBanGmMsg = false;
        /// <summary>
        /// 拒绝行会聊天
        /// </summary>
        public bool m_boBanGuildChat = false;
        /// <summary>
        /// 是不允许交易
        /// </summary>
        public bool m_boAllowDeal = false;
        /// <summary>
        /// 禁止私聊人员列表
        /// </summary>
        public List<string> m_BlockWhisperList = null;
        /// <summary>
        /// 饥饿状态----注释父类变量 
        /// </summary>
        public int m_nHungerStatus = 0;
        /// <summary>
        /// 行会合一
        /// </summary>
        public bool m_boAllowGuildReCall = false;
        /// <summary>
        /// 队传送时间
        /// </summary>
        public uint m_wGroupRcallTime = 0;
        public bool m_boAllowGroupReCall = false;
        /// <summary>
        /// 确认元宝寄售标志
        /// </summary>
        public bool m_boSellOffOK = false;
        /// <summary>
        /// 元宝寄售物品列表
        /// </summary>
        public IList<TUserItem> m_SellOffItemList = null;
        /// <summary>
        /// 粹练物品列表
        /// </summary>
        public IList<TUserItem> m_RefineItemList = null;
        /// <summary>
        /// 交易物品列表
        /// </summary>
        public IList<TUserItem> m_DealItemList = null;
        /// <summary>
        /// 交易的金币数量
        /// </summary>
        public int m_nDealGolds = 0;
        /// <summary>
        /// 确认交易标志(Byte)  确认元宝寄售标志
        /// </summary>
        public bool m_boDealOK = false;
        /// <summary>
        /// 允许组队
        /// </summary>
        public bool m_boAllowGroup = false;
        /// <summary>
        /// 允许加入行会
        /// </summary>
        public bool m_boAllowGuild = false;
        /// <summary>
        /// 喊消息间隔
        /// </summary>
        public uint m_dwShoutMsgTick = 0;
        /// <summary>
        /// 仓库
        /// </summary>
        public List<TUserItem> m_StorageItemList = null;
        /// <summary>
        /// 魔法间隔
        /// </summary>
        public uint m_dwMagicHitIntervalTime = 0;
        /// <summary>
        /// 跑步间隔
        /// </summary>
        public uint m_dwRunIntervalTime = 0;
        /// <summary>
        /// 走路间隔
        /// </summary>
        public uint m_dwWalkIntervalTime = 0;
        /// <summary>
        /// 换方向间隔
        /// </summary>
        public uint m_dwTurnIntervalTime = 0;
        /// <summary>
        /// 组合操作间隔
        /// </summary>
        public uint m_dwActionIntervalTime = 0;
        /// <summary>
        /// 移动刺杀间隔
        /// </summary>
        public uint m_dwRunLongHitIntervalTime = 0;
        /// <summary>
        /// 跑位攻击间隔
        /// </summary>
        public uint m_dwRunHitIntervalTime = 0;
        /// <summary>
        /// 走位攻击间隔
        /// </summary>
        public uint m_dwWalkHitIntervalTime = 0;
        /// <summary>
        /// 跑位魔法间隔
        /// </summary>
        public uint m_dwRunMagicIntervalTime = 0;
        /// <summary>
        /// 魔法攻击时间
        /// </summary>
        public uint m_dwMagicAttackTick = 0;
        /// <summary>
        /// 魔法攻击间隔时间
        /// </summary>
        public uint m_dwMagicAttackInterval = 0;
        /// <summary>
        /// 攻击时间
        /// </summary>
        public uint m_dwAttackTick = 0;
        /// <summary>
        /// 人物跑动时间
        /// </summary>
        public uint m_dwMoveTick = 0;
        /// <summary>
        /// 人物攻击计数
        /// </summary>
        public uint m_dwAttackCount = 0;
        /// <summary>
        /// 人物攻击计数
        /// </summary>
        public uint m_dwAttackCountA = 0;
        /// <summary>
        /// 魔法攻击计数
        /// </summary>
        public uint m_dwMagicAttackCount = 0;
        /// <summary>
        /// 人物跑计数
        /// </summary>
        public uint m_dwMoveCount = 0;
        /// <summary>
        /// 人物跑计数
        /// </summary>
        public uint m_dwMoveCountA = 0;
        /// <summary>
        /// 超速计数
        /// </summary>
        public int m_nOverSpeedCount = 0;
        public bool m_boDieInFight3Zone = false;
        public TScript m_Script = null;
        public TBaseObject m_NPC = null;
        /// <summary>
        /// 玩家的变量
        /// </summary>
        public int[] m_nVal = new int[99];
        /// <summary>
        /// 玩家的变量
        /// </summary>
        public int[] m_nMval = new int[99];
        /// <summary>
        /// 玩家的变量
        /// </summary>
        public int[] m_DyVal = new int[99];
        public string m_sPlayDiceLabel = string.Empty;
        public bool m_boTimeRecall = false;
        public uint m_dwTimeRecallTick = 0;
        public string m_sMoveMap = string.Empty;
        public int m_nMoveX = 0;
        public int m_nMoveY = 0;
        /// <summary>
        /// 保存人物数据时间间隔
        /// </summary>
        public uint m_dwSaveRcdTick = 0;
        public int m_nBright = 0;
        /// <summary>
        /// 新人物
        /// </summary>
        public bool m_boNewHuman = false;
        public bool m_boSendNotice = false;
        public uint m_dwWaitLoginNoticeOKTick = 0;
        /// <summary>
        /// 在游戏公告上点了确定
        /// </summary>
        public bool m_boLoginNoticeOK = false;
        public bool bo6AB = false;
        /// <summary>
        /// 帐号过期
        /// </summary>
        public bool m_boExpire = false;
        public uint m_dwShowLineNoticeTick = 0;
        /// <summary>
        /// 当前显示公告索引
        /// </summary>
        public int m_nShowLineNoticeIdx = 0;
        /// <summary>
        /// 客户端版本日期
        /// </summary>
        public int m_nSoftVersionDateEx = 0;
        /// <summary>
        /// 能跳转脚本标签列表
        /// </summary>
        public List<string> m_CanJmpScriptLableList = null;
        /// <summary>
        /// 脚本跳转GOTO数
        /// </summary>
        public int m_nScriptGotoCount = 0;
        public string m_sScriptCurrLable = string.Empty;// 用于处理 @back 脚本命令
        public string m_sScriptGoBackLable = string.Empty;// 用于处理 @back 脚本命令
        /// <summary>
        /// 转向间隔
        /// </summary>
        public uint m_dwTurnTick = 0;
        /// <summary>
        /// 旧的动作消息
        /// </summary>
        public ushort m_wOldIdent = 0;
        /// <summary>
        /// 旧的方向
        /// </summary>
        public byte m_btOldDir = 0;
        /// <summary>
        /// 二次操作之间间隔时间
        /// </summary>
        public uint m_dwActionTick = 0;
        /// <summary>
        /// 配偶名称
        /// </summary>
        public string m_sDearName;
        public TPlayObject m_DearHuman = null;// 配偶类
        public bool m_boCanDearRecall = false;// 是否允许夫妻传送
        public bool m_boCanMasterRecall = false;// 是否允许师徒传送
        public uint m_dwDearRecallTick = 0;// 夫妻传送间隔
        public uint m_dwMasterRecallTick = 0;// 师徒传送间隔
        public string m_sMasterName;// 师傅名称
        public TPlayObject m_MasterHuman = null;
        public List<TPlayObject> m_MasterList = null;// 徒弟列表
        public bool m_boMaster = false;// 是否是徒弟  T-有徒弟
        public ushort m_nMasterNo = 0;// 徒弟排名
        public List<string> m_MasterNoList = null;// 徒弟排名列表
        public int m_btCreditPoint = 0;// 声望点
        public byte m_btMarryCount = 0;// 离婚次数
        public byte m_btReLevel = 0;// 转生等级
        public byte m_btReColorIdx = 0;
        public uint m_dwReColorTick = 0;
        /// <summary>
        /// 处理消息循环时间控制
        /// </summary>
        public uint m_dwGetMsgTick = 0;
        /// <summary>
        /// 设置仓库密码
        /// </summary>
        public bool m_boSetStoragePwd = false;
        public bool m_boReConfigPwd = false;
        public bool m_boCheckOldPwd = false;// 是否检查旧密码
        public bool m_boUnLockPwd = false;// 解锁定
        public bool m_boUnLockStoragePwd = false;// 锁定仓仓库密码
        public bool m_boPasswordLocked = false;// 锁密码
        public byte m_btPwdFailCount = 0;
        public bool m_boLockLogon = false;// 是否启用锁登录功能
        public bool m_boLockLogoned = false;// 是否打开登录锁(解)
        public string m_sTempPwd;// 临时密码
        public string m_sStoragePwd;// 仓库密码
        public TBaseObject m_PoseBaseObject = null;// 面对面的角色
        public bool m_boStartMarry = false;
        public bool m_boStartMaster = false;// 开始收徒或拜师
        public bool m_boStartUnMarry = false;
        public bool m_boStartUnMaster = false;// 开始出师
        public bool m_boFilterSendMsg = false;// 禁止发方字(发的文字只能自己看到)
        public int m_nKillMonExpRate = 0;// 杀怪经验倍数(此数除以 100 为真正倍数)
        public int m_nOldKillMonExpRate = 0;// 没使用套装前杀怪经验倍数 
        public int m_nItmeIncMonExpRate = 0;// 使用套装增加的经验 
        public int m_nPowerRate = 0;// 人物攻击力倍数(此数除以 100 为真正倍数)
        public uint m_dwPowerRateTime = 0;// 人物攻击力倍数改变恢复正常的时间计数(秒)
        public int m_dwKillMonExpRateTime = 0;// 调整杀怪经验倍数后的使用时间(秒)
        public uint m_dwRateTick = 0;
        public bool m_boCanUseItem = false;// 是否允许使用物品
        /// <summary>
        /// 能交易
        /// </summary>
        public bool m_boCanDeal = false;
        /// <summary>
        /// 能扔
        /// </summary>
        public bool m_boCanDrop = false;
        public bool m_boCanGetBackItem = false;// 取回升级的物品
        public bool m_boCanWalk = false;// 是否能走
        public bool m_boCanRun = false;// 是否允许跑
        public bool m_boCanHit = false;// 是否允许打击
        public bool m_boCanSpell = false;// 是否允许魔法
        public bool m_boCanSendMsg = false;// 是否允许发送信息
        public int m_nMemberType = 0;// 会员类型
        public int m_nMemberLevel = 0;// 会员等级
        /// <summary>
        /// 发祝福语标志
        /// </summary>
        public bool m_boSendMsgFlag = false;
        public bool m_boChangeItemNameFlag = false;
        /// <summary>
        /// 金刚石数量
        /// </summary>
        public int m_nGAMEDIAMOND = 0;
        /// <summary>
        /// 灵符数量
        /// </summary>
        public int m_nGAMEGIRD = 0;
        /// <summary>
        /// 荣誉
        /// </summary>
        public byte m_btGameGlory = 0;
        /// <summary>
        /// 游戏币(元宝)
        /// </summary>
        public int m_nGameGold = 0;
        public bool m_boDecGameGold = false;// 是否自动减游戏币
        public uint m_dwDecGameGoldTime = 0;// 自动减游戏币时间
        public uint m_dwDecGameGoldTick = 0;// 自动减游戏币间隔
        public int m_nDecGameGold = 0;// 一次减点数
        public bool m_boIncGameGold = false;// 是否自动加游戏币
        public uint m_dwIncGameGoldTime = 0;// 自动加游戏时间
        public uint m_dwIncGameGoldTick = 0;// 自动加游戏间隔
        public int m_nIncGameGold = 0;// 一次减点数
        public int m_nGamePoint = 0;// 游戏点数
        public uint m_dwIncGamePointTick = 0;// 加游戏点的间隔
        public uint m_dwDecGamePointTick = 0;// 减游戏点的间隔
        public int m_nPayMentPoint = 0;// 秒卡点
        public uint m_dwPayMentPointTick = 0;// 秒卡点间隔
        public uint m_dwDecHPTick = 0;// 减HP间隔
        public uint m_dwIncHPTick = 0;// 加HP间隔
        public TPlayObject m_GetWhisperHuman = null;// 侦听私聊对象
        public uint m_dwClearObjTick = 0;// 清除对像间隔
        public ushort m_wContribution = 0;// 贡献度
        public string m_sRankLevelName = string.Empty;// 显示名称格式串
        public bool m_boFilterAction = false;// 动作过滤
        public bool m_boClientFlag = false;// 客户端标志
        public byte m_nStep = 0;
        public int m_nClientFlagMode = 0;
        public uint m_dwAutoGetExpTick = 0;// 自动泡点的时间间隔
        public int m_nAutoGetExpTime = 0;// 自动泡点时间
        public int m_nAutoGetExpPoint = 0;// 自动泡点数
        public Envirnoment m_AutoGetExpEnvir = null;// 自动泡点地图
        public bool m_boAutoGetExpInSafeZone = false;
        public List<TDynamicVar> m_DynamicVarList = null;// 自定义变量列表
        public uint m_dwClientTick = 0;// 客户端间隔
        public bool m_boTestSpeedMode = false;// 进入速度测试模式
        public List<TBigStorage> m_BigStorageItemList = null;// 无限仓库
        public bool m_boRemoteMsg = false;// 是否允许接受消息
        public bool m_boAllowReAlive = false;// 是否允许复活
        /// <summary>
        /// 是否是离线挂机人物
        /// </summary>
        public bool m_boNotOnlineAddExp = false;
        public uint m_dwStartNotOnlineAddExpTime = 0;// 离线挂机开始时间
        public uint m_dwNotOnlineAddExpTime = 0;// 离线挂机时长
        public int m_nNotOnlineAddExpPoint = 0;// 离线挂机每分钟增加经验值
        public bool m_boKickAutoAddExpUser = false;// 是否踢出自动挂机人物
        public uint m_dwAutoAddExpPointTick = 0;
        public uint m_dwAutoAddExpPointTimeTick = 0;
        public bool m_boStartAutoAddExpPoint = false;// 是否自动增加经验(挂机)
        public string m_sAutoSendMsg = string.Empty;// 自动回复信息
        public byte m_btHearMsgFColor = 0;// 说话字体颜色
        public byte m_btWhisperMsgFColor = 0;// 私聊字体颜色
        public bool m_boTimeGoto = false;
        public uint m_dwTimeGotoTick = 0;
        public string m_sTimeGotoLable = string.Empty;
        public TMerchant m_TimeGotoNPC = null;// Delaygoto延时跳转
        public int m_nDealGoldPose = 0;
        public int m_nBigStoragePage = 0;// 无限仓库的当前页数
        public uint m_dwDedingUseTick = 0;// 地钉使用间隔
        public bool m_boRunPlayRobotManage = false;// 是否运行个人机器人
        public TPlayRobotManage m_PlayRobotManage = null;// 人物个人机器人
        public bool m_boPlayOffLine = false;// 是否下线触发
        public int[] m_nInteger = new int[99];// 人物变量
        public string[] m_sString = new string[99];// 人物变量 S变量
        public ushort m_wMasterCount = 0;// 徒弟数
        public List<string> m_PlayOrderList = null;// 人物排行
        public int m_nSelPlayOrderType = 0;// 选择排行类型 0-等级 1-战士 2-法师 3-道士 4-名师
        public int m_nPlayOrderPage = 0;// 选择人物排行页数
        public bool m_boGetMyLevelOrder = false;// 取自己的排名
        /// <summary>
        /// 是否正在读取英雄数据
        /// </summary>
        public bool m_boWaitHeroDate = false;
        public uint m_TargetTime = 0;// 锁定目标间隔
        public bool m_boHasHero = false;// 是否有英雄(白门英雄)
        public string m_sHeroCharName;// 英雄名称
        public string m_sTempHeroCharName;// 临时英雄名称,创建英雄时保存用
        /// <summary>
        /// 我的英雄
        /// </summary>
        public TBaseObject m_MyHero = null;
        public bool m_boCallHero = false;// 是否可以召唤英雄 
        public byte n_HeroSave = 0;// 是否存英雄,1-存英雄 
        public byte n_myHeroTpye = 0;// 英雄的类型  0-白日门英雄 1-卧龙英雄
        public bool m_boPlayDrink = false;// 是否请过酒 T-请过酒 
        public byte[] n_DrinkValue = new byte[2];// 喝酒的醉酒值 0-NPC 1-玩家 
        public byte n_DrinkCount = 0;// 喝酒的次数(斗酒一次最高6次) 
        public bool m_boHasHeroTwo = false;// 是否有卧龙英雄 
        public byte n_tempHeroTpye = 0;// 保存临时英雄类型
        /// <summary>
        /// 是否酿酒
        /// </summary>
        public bool m_boMakeWine = false;
        public byte n_MakeWineType = 0;// 酿酒的类型 1-普通酒 2-药酒  
        public int m_MakeWineTime = 0;// 酿酒的时间,即还有多长时间可以取回酒(秒) 
        public byte n_MakeWineItmeType = 0;// 酿酒后,应该可以得到酒的类型 
        public byte n_MakeWineQuality = 0;// 酿酒后,应该可以得到酒的品质 
        public byte n_MakeWineAlcohol = 0;// 酿酒后,应该可以得到酒的酒精度 
        public uint m_dwAddAlcoholTick = 0;// 增加酒量进度的间隔  
        public uint m_dwDecWineDrinkValueTick = 0;// 减少醉酒度的间隔  
        public byte n_DrinkWineQuality = 0;// 饮酒时酒的品质 
        public byte n_DrinkWineAlcohol = 0;// 饮酒时酒的度数 
        public bool n_DrinkWineDrunk = false;// 喝酒醉了 
        public ushort n_InFountainTime = 0;// 站在泉水眼的时间 
        public int dw_UseMedicineTime = 0;// 使用药酒时间,计算长时间没使用药酒 
        public UInt16 n_MedicineLevel = 0;// 药力值等级 
        public int m_GiveGuildFountationDate = 0;// 取行会泉水日期
        public int m_Exp68 = 0;// 酒气护体当前经验 
        public int m_MaxExp68 = 0;// 酒气护体升级经验 
        public bool bo_NPCMove = false;// 是否点击,让NPC走动 
        public bool m_boTrainingNG = false;// 是否学习过内功 
        public byte m_NGLevel = 0;// 内功等级 
        public int m_ExpSkill69 = 0;// 内功心法当前经验 
        public int m_MaxExpSkill69 = 0;// 内功心法升级经验 
        public ushort m_Skill69NH = 0;// 当前内力值 
        public ushort m_Skill69MaxNH = 0;// 最大内力值 
        public uint m_dwIncNHTick = 0;// 增加内力值计时 
        public uint m_dwIncAddNHTick = 0;// 增加内力恢复速度 %  
        public uint m_dwIncAddNHPoint = 0;// 内力恢复速度加几点 
        public List<TBoxsInfo> m_Boxs;// 随机取的宝箱物品 
        public byte n_OpenBox = 0;// 转动宝箱的次数  由integer换成Byte
        public int n_IncUsesGameGold = 0;// 转宝箱累计消费(元宝)
        public int n_IncUsesGold = 0;// 转宝箱累计消费(金币)
        public int n_BoxsItmeID = 0;// 随机给玩家的物品ID
        public bool m_boOpenBox = false;// 是否宝箱在打开 
        public int n_LevelOrder = 0;// 玩家当前等级排名 
        public uint dwGetLevelOrderTick = 0;// 查询玩家等级排名的间隔 
        public uint dwRunHumanModeTick = 0;// 穿人模式的间隔 
        public uint dwRunHumanModeTime = 0;// 穿人模式的时间 
        public bool m_boRunHumanMode = false;// 是否可以改变穿人模式  
        public int n_UsesItemTick = 0;// 聚灵珠聚集时间 
        public int n_UsesItemTime = 0;// 聚灵珠发送剩余时间消息的时间 
        /// <summary>
        /// 是否开通元宝寄售
        /// </summary>
        public bool bo_YBDEAL = false;
        /// <summary>
        /// 召唤英雄间隔时间
        /// </summary>
        public uint m_nRecallHeroTime = 0; 
        /// <summary>
        /// 个人定时器
        /// </summary>
        public uint[] AutoTimerTick = new uint[20]; 
        /// <summary>
        /// 个人定时器 时间间隔 
        /// </summary>
        public int[] AutoTimerStatus = new int[20]; 
        public bool m_boChallengeing = false;// 是否在挑战中
        public TPlayObject m_ChallengeCreat = null;// 挑战的对像
        public List<TUserItem> m_ChallengeItemList = null;// 挑战物品列表
        public int m_nChallengeGolds = 0;// 挑战的金币数量
        public int m_nChallengeGAMEDIAMOND = 0;// 挑战的金刚石
        public bool m_boChallengeOK = false;// 确认开始挑战标志
        public uint m_ChallengeLastTick = 0;// 挑战放物品最后操作时间 
        public uint m_ChallengeTime = 0;// 挑战计时
        public uint dwRockAddHPTick = 0;// 魔血石类HP 使用间隔
        public uint dwRockAddMPTick = 0;// 魔血石类MP 使用间隔
        public bool m_boCanQueryBag = false;// 是否可以刷新包裹
        public bool m_boCanQueryShopItme = false;// 是否可以刷新商铺 
        public bool m_boHeroLogOut = false;// 英雄退出(包裹传递时用于判断) 
        public TagMapInfo[] m_TagMapInfos;// 人物记路标石
        public int m_GetExp = 0;// 人物取得的经验,$GetExp变量使用 
        public int m_BuyShopPrice = 0;// 每次商铺花的元宝数量，$BUYSHOP变量使用
        public int m_UseGameGird = 0;// 每次使用灵符数，$USEGAMEGIRD变量使用
        public string m_sMapName136;//魔王领地图
        public Dictionary<int, TServerProcess> FServerProcess;
        public delegate void TServerProcess(TProcessMessage ProcessMsg, ref bool boResult);
        #endregion

        public TPlayObject()
            : base()
        {
            m_boHeroAutoTraining = false;// 初始化为False;
            m_dwIncAddNHTick = 0;// 增加内力恢复速度 %
            m_dwIncAddNHPoint = 0;// 增加内力恢复点
            m_nBatterUseTick = HUtil32.GetTickCount();// 初始化连击使用间隔变量
            m_nUserCmdNPC = null;// 客户端按确认所执行的脚本
            m_btRaceServer = Grobal2.RC_PLAYOBJECT;
            m_boEmergencyClose = false;
            m_boSwitchData = false;
            m_boReconnection = false;
            m_boKickFlag = false;
            m_boSoftClose = false;
            m_boReadyRun = false;
            m_dwSaveRcdTick = HUtil32.GetTickCount();
            m_boWantRefMsg = true;
            m_boRcdSaveding = false;// 是否正在保存数据
            m_boRcdSaved = false;
            m_boDieInFight3Zone = false;
            m_Script = null;
            m_boTimeRecall = false;
            m_sMoveMap = "";
            m_nMoveX = 0;
            m_nMoveY = 0;
            m_sLastMapName = "";// 人物死亡地图
            m_nLastCurrX = 0;// 人物死亡地图所在座标X
            m_nLastCurrY = 0;// 人物死亡地图所在座标Y
            m_boBuyShopItem = false;// 正在购买商铺物品中
            m_boDealing = false;
            m_DealCreat = null;
            m_GroupOwner = null;
            m_GroupMembers = new List<TPlayObject>();
            m_boHearWhisper = true;
            m_boBanShout = true;
            m_boBanGmMsg = true;// 允许接收所有喊话
            m_boBanGuildChat = true;
            m_boAllowDeal = true;
            m_boAllowGroupReCall = false;
            m_BlockWhisperList = new List<string>();
            m_wGroupRcallTime = 0;
            m_dwGroupRcallTick = HUtil32.GetTickCount();
            m_SellOffItemList = new List<TUserItem>();// 元宝寄售物品列表
            m_RefineItemList = new List<TUserItem>();// 粹练物品列表
            m_DealItemList = new List<TUserItem>();
            m_nDealGolds = 0;
            m_StorageItemList = new List<TUserItem>();
            m_boAllowGroup = false;
            m_boAllowGuild = false;
            m_dwShoutMsgTick = 0;
            m_dwRunTick = HUtil32.GetTickCount();
            m_nRunTime = 250;
            m_dwSearchTime = 1000;
            m_dwSearchTick = HUtil32.GetTickCount();
            m_nViewRange = 12;
            m_boNewHuman = false;
            m_boLoginNoticeOK = false;
            bo6AB = false;
            m_boExpire = false;
            m_boSendNotice = false;
            m_dwCheckDupObjTick = HUtil32.GetTickCount();
            dwTick578 = HUtil32.GetTickCount();
            dwTick57C = HUtil32.GetTickCount();
            m_boInSafeArea = false;
            m_dwMagicAttackTick = HUtil32.GetTickCount();
            m_dwMagicAttackInterval = 0;
            m_dwAttackTick = HUtil32.GetTickCount();
            m_dwMoveTick = HUtil32.GetTickCount();
            m_dwTurnTick = HUtil32.GetTickCount();
            m_dwActionTick = HUtil32.GetTickCount();
            m_dwAttackCount = 0;
            m_dwAttackCountA = 0;
            m_dwMagicAttackCount = 0;
            m_dwMoveCount = 0;
            m_dwMoveCountA = 0;
            m_nOverSpeedCount = 0;
            m_dwSayMsgTick = HUtil32.GetTickCount();
            m_boDisableSayMsg = false;
            m_dwDisableSayMsgTick = HUtil32.GetTickCount();
            m_dLogonTime = DateTime.Now;
            m_dwLogonTick = HUtil32.GetTickCount();
            m_boSwitchData = false;
            m_boSwitchDataSended = false;
            m_nWriteChgDataErrCount = 0;
            m_dwShowLineNoticeTick = HUtil32.GetTickCount();
            m_nShowLineNoticeIdx = 0;
            m_nSoftVersionDateEx = 0;
            m_CanJmpScriptLableList = new List<string>();
            m_nKillMonExpRate = 100;
            m_nOldKillMonExpRate = m_nKillMonExpRate;
            m_nItmeIncMonExpRate = 0;// 使用套装增加的经验
            m_dwRateTick = HUtil32.GetTickCount();
            m_nPowerRate = 100;
            m_boSetStoragePwd = false;
            m_boReConfigPwd = false;
            m_boCheckOldPwd = false;
            m_boUnLockPwd = false;
            m_boUnLockStoragePwd = false;
            m_boPasswordLocked = false;// 锁仓库
            m_btPwdFailCount = 0;
            m_sTempPwd = "";
            m_sStoragePwd = "";
            m_boFilterSendMsg = false;
            m_boCanDeal = true;
            m_boCanDrop = true;
            m_boCanGetBackItem = true;
            m_boCanWalk = true;
            m_boCanRun = true;
            m_boCanHit = true;
            m_boCanSpell = true;
            m_boCanUseItem = true;
            m_nMemberType = 0;
            m_nMemberLevel = 0;
            m_nGameGold = 0;
            m_nGAMEDIAMOND = 0;// 金刚石
            m_nGAMEGIRD = 0;// 灵符
            m_boDecGameGold = false;
            m_nDecGameGold = 1;
            m_dwDecGameGoldTick = HUtil32.GetTickCount();// 60 * 1000
            m_dwDecGameGoldTime = 60000;
            m_boIncGameGold = false;
            m_nIncGameGold = 1;
            m_dwIncGameGoldTick = HUtil32.GetTickCount();// 60 * 1000
            m_dwIncGameGoldTime = 60000;
            m_nGamePoint = 0;
            m_dwIncGamePointTick = HUtil32.GetTickCount();
            m_dwDecGamePointTick = HUtil32.GetTickCount();
            m_nPayMentPoint = 0;
            m_DearHuman = null;
            m_MasterHuman = null;
            m_MasterList = new List<TPlayObject>();
            m_boSendMsgFlag = false;
            m_boChangeItemNameFlag = false;
            m_boCanMasterRecall = false;
            m_boCanDearRecall = false;
            m_dwDearRecallTick = HUtil32.GetTickCount();
            m_dwMasterRecallTick = HUtil32.GetTickCount();
            m_btReColorIdx = 0;
            m_GetWhisperHuman = null;
            m_boOnHorse = false;
            m_wContribution = 0;
            m_sRankLevelName = GameMsgDef.g_sRankLevelName;
            m_boFixedHideMode = true;
            m_nStep = 0;
            m_nClientFlagMode = -1;
            m_dwAutoGetExpTick = HUtil32.GetTickCount();
            m_nAutoGetExpPoint = 0;
            m_AutoGetExpEnvir = null;
            m_dwMagicHitIntervalTime = M2Share.g_Config.dwMagicHitIntervalTime;// 魔法间隔
            m_dwRunIntervalTime = M2Share.g_Config.dwRunIntervalTime;// 跑间隔
            m_dwWalkIntervalTime = M2Share.g_Config.dwWalkIntervalTime;// 走路间隔
            m_dwTurnIntervalTime = M2Share.g_Config.dwTurnIntervalTime;// 换方向间隔
            m_dwActionIntervalTime = M2Share.g_Config.dwActionIntervalTime;// 组合操作间隔
            m_dwRunLongHitIntervalTime = M2Share.g_Config.dwRunLongHitIntervalTime;// 组合操作间隔
            m_dwRunHitIntervalTime = M2Share.g_Config.dwRunHitIntervalTime;// 组合操作间隔
            m_dwWalkHitIntervalTime = M2Share.g_Config.dwWalkHitIntervalTime;// 组合操作间隔
            m_dwRunMagicIntervalTime = M2Share.g_Config.dwRunMagicIntervalTime;// 跑位魔法间隔
            m_DynamicVarList = new List<TDynamicVar>();
            m_boTestSpeedMode = false;
            m_boLockLogon = true;
            m_boLockLogoned = false;
            m_boRemoteMsg = false;// 是否允许接受消息
            m_boNotOnlineAddExp = false;// 是否是离线挂机人物
            m_boStartAutoAddExpPoint = false;// 是否开始增加经验
            m_dwStartNotOnlineAddExpTime = 0;// 离线挂机开始时间
            m_dwNotOnlineAddExpTime = 0;// 离线挂机时长
            m_nNotOnlineAddExpPoint = 0;// 离线挂机每分钟增加经验值
            m_dwAutoAddExpPointTick = HUtil32.GetTickCount();
            m_dwAutoAddExpPointTimeTick = HUtil32.GetTickCount();
            m_sAutoSendMsg = "您好，我正在离线泡点中......";// 自动回复信息
            m_boKickAutoAddExpUser = false;
            m_boTimeGoto = false;
            m_dwTimeGotoTick = HUtil32.GetTickCount();
            m_sTimeGotoLable = "";
            m_TimeGotoNPC = null;
            m_nBigStoragePage = 0;// 无限仓库的当前页数
            m_nDealGoldPose = 0;
            m_boPlayOffLine = true;// 是否允许下线触发
            m_dwDedingUseTick = 0;
            this.m_nCopyHumanLevel = 0;
            m_boAllowReAlive = false;// 是否允许复活
            m_boRunPlayRobotManage = true;// 是否运行个人机器人
            m_PlayRobotManage = new TPlayRobotManage();// 人物个人机器人
            m_PlayRobotManage.PlayObject = this;
            m_wMasterCount = 0;// 徒弟数
            m_PlayOrderList = new List<string>();// 人物排行
            m_nSelPlayOrderType = 0;// 选择排行类型
            m_nPlayOrderPage = 0;// 选择人物排行页数
            m_boGetMyLevelOrder = false;
            m_BigStorageItemList = null;// 无限仓库
            m_btHearMsgFColor = 0x00;// 喊话字体颜色
            m_btWhisperMsgFColor = 0xFC;// 私聊字体颜色
            m_MyHero = null;// 我的英雄
            m_boHasHero = false;
            m_boHasHeroTwo = false;
            m_sHeroCharName = "";
            m_sTempHeroCharName = "";
            m_sDeputyHeroCharName = "";
            m_boWaitHeroDate = false;
            m_boCallHero = true;// 是否可以召唤英雄
            n_HeroSave = 0;// 是否保存英雄 
            m_boPlayDrink = false;// 是否请过酒 T-请过酒 
            n_DrinkValue[0] = 0;// 喝酒的醉酒值 0-NPC 1-玩家 
            n_DrinkValue[1] = 0;
            n_DrinkCount = 0;// 喝酒的次数(斗酒一次最高6次) 
            m_boMakeWine = false;// 是否酿酒
            m_MakeWineTime = 0;// 酿酒的时间,即还有多长时间可以取回酒 
            n_MakeWineItmeType = 0;// 酿酒后,应该可以得到酒的类型 
            n_MakeWineQuality = 0;// 酿酒后,应该可以得到酒的品质 
            n_MakeWineAlcohol = 0;// 酿酒后,应该可以得到酒的酒精度 
            n_MakeWineType = 0;// 酿酒的类型 1-普通酒 2-药酒  
            m_dwAddAlcoholTick = HUtil32.GetTickCount();// 增加酒量进度的间隔  
            m_dwDecWineDrinkValueTick = HUtil32.GetTickCount();// 减少醉酒度的间隔  
            n_DrinkWineQuality = 0;// 饮酒时酒的品质 
            n_DrinkWineAlcohol = 0;// 饮酒时酒的度数 
            n_DrinkWineDrunk = false;// 喝酒醉了 
            n_InFountainTime = 0;// 站在泉水眼的时间 
            dw_UseMedicineTime = 0;// 使用药酒时间,计算长时间没使用药酒 
            n_MedicineLevel = 0;// 药力值等级 
            m_GiveGuildFountationDate = 0;// 取行会泉水日期
            m_Exp68 = 0;// 酒气护体当前经验 
            m_MaxExp68 = 0;// 酒气护体升级经验 
            bo_NPCMove = false;// 是否点击,让NPC走动 
            n_LevelOrder = 0;// 玩家当前等级排名 
            m_Boxs = new List<TBoxsInfo>();// 随机选取的宝箱物品 
            m_boOpenBox = false;// 是否宝箱在打开
            m_sScriptLable = "";
            m_dwSayMyInfoTick = HUtil32.GetTickCount();
            m_nMasterNo = 0;// 徒弟排名
            m_MasterNoList = new List<string>();// 徒弟排名列表
            m_boChallengeing = false;// 是否在挑战中
            m_ChallengeCreat = null;// 挑战对像
            m_ChallengeItemList = new List<TUserItem>();// 挑战物品列表
            m_nChallengeGolds = 0;// 挑战的金币数量
            m_nChallengeGAMEDIAMOND = 0;// 挑战的金刚石
            m_boAddToMaped = false;// 地图是否计数
            m_boCanQueryBag = false;// 是否可以刷新包裹
            m_boCanQueryShopItme = false;// 是否可以刷新商铺
            m_boHeroLogOut = false;// 英雄退出
            m_boTrainingNG = false;// 是否学习过内功
            m_NGLevel = 1;// 内功等级 
            m_ExpSkill69 = 0;// 内功心法当前经验
            m_MaxExpSkill69 = 0;// 内功心法升级经验
            m_Skill69NH = 0;// 当前内力值
            m_Skill69MaxNH = 0;// 最大内力值
            m_dwIncNHTick = HUtil32.GetTickCount();// 增加内力值计时
            m_TagMapInfos = new TagMapInfo[6];// 人物记路标石
            m_GetExp = 0;// 人物取得的经验,$GetExp变量使用
            m_BuyShopPrice = 0;// 每次商铺花的元宝数量，$BuyShop变量使用
            m_UseGameGird = 0;// 每次使用灵符数，$USEGAMEGIRD变量使用
            m_sMapQFStr = "";// SENDTIMEMSG命令设置的触发段
            m_sMapQFStr1 = "";// SENDMSGWINDOWS命令设置的触发段
            m_boForMapShowHint = false;// 换地图是否还显示倒计时信息
            m_boShowExpCrystal = false;// 是否显示天地结晶图标
            m_CrystalLevel = 0;// 天地结晶等级
            m_CrystalExp = 0;// 天地结晶当前经验
            m_CrystalMaxExp = 0;// 天地结晶升级经验
            m_CrystalNGExp = 0;// 天地结晶当前内功经验
            m_CrystalNGMaxExp = 0;// 天地结晶内功升级经验
            m_boGetExpCrystalExp = false;// 是否可以提取经验
            m_nGetCrystalExp = 0;// 可提取天地结晶经验
            m_nGetCrystalNGExp = 0;// 天可提取地结晶内功经验
            this.m_boRobotObject = false;
            m_sMapName136 = "";// 魔王岭地图名称

            m_MagicArr = new TUserMagic[3][] {
                new TUserMagic[50],
                new TUserMagic[50],
                new TUserMagic[50]
            };

            InitProcessMessageList();
        }

        ~TPlayObject()
        {
            if (m_SellOffItemList != null)
            {
                if (m_SellOffItemList.Count > 0)
                {
                    for (int i = 0; i < m_SellOffItemList.Count; i++)// 元宝寄售物品列表
                    {
                        if (m_SellOffItemList[i].MakeIndex != 0)
                        {
                            Dispose(m_SellOffItemList[i]);
                        }
                    }
                }
                m_SellOffItemList = null;
            }
            if (m_RefineItemList != null)
            {
                if (m_RefineItemList.Count > 0)
                {
                    for (int i = 0; i < m_RefineItemList.Count; i++) // 粹练物品列表
                    {
                        unsafe
                        {
                            if (((TUserItem)(m_RefineItemList[i])) != null)
                            {
                                //Marshal.FreeHGlobal((IntPtr)m_RefineItemList[i]);
                            }
                        }
                    }
                }
                m_RefineItemList = null;
            }
            if (m_DealItemList != null)
            {
                if (m_DealItemList.Count > 0)
                {
                    for (int i = 0; i < m_DealItemList.Count; i++)
                    {
                        unsafe
                        {
                            if (((TUserItem)(m_DealItemList[i])) != null)
                            {
                                //Marshal.FreeHGlobal((IntPtr)m_DealItemList[i]);
                            }
                        }
                    }
                }
                m_DealItemList = null;
            }
            if (m_ChallengeItemList != null)// 挑战物品列表
            {
                if (m_ChallengeItemList.Count > 0)
                {
                    for (int i = 0; i < m_ChallengeItemList.Count; i++)
                    {
                        unsafe
                        {
                            if (((TUserItem)(m_ChallengeItemList[i])) != null)
                            {
                                //Marshal.FreeHGlobal((IntPtr)m_ChallengeItemList[i]);
                            }
                        }
                    }
                }
                m_ChallengeItemList = null;
            }
            if (m_StorageItemList != null)
            {
                if (m_StorageItemList.Count > 0)
                {
                    for (int i = 0; i < m_StorageItemList.Count; i++)
                    {
                        unsafe
                        {
                            if (((TUserItem)(m_StorageItemList[i])) != null)
                            {
                                //Marshal.FreeHGlobal((IntPtr)m_StorageItemList[i]);
                            }
                        }
                    }
                }
                m_StorageItemList = null;
            }
            if (m_GroupMembers != null)
            {
                m_GroupMembers = null;
            }
            if (m_BlockWhisperList != null)
            {
                m_BlockWhisperList = null;
            }
            if (m_MasterList != null)
            {
                m_MasterList = null;
            }
            if (m_Boxs != null)
            {
                m_Boxs = null;
            }
            // 随机选取宝箱的物品
            if (m_DynamicVarList != null)
            {
                if (m_DynamicVarList.Count > 0)
                {
                    for (int i = 0; i < m_DynamicVarList.Count; i++)
                    {
                        if (((TDynamicVar)(m_DynamicVarList[i])) != null)
                        {
                            Dispose(((TDynamicVar)(m_DynamicVarList[i])));
                        }
                    }
                }
                m_DynamicVarList = null;
            }
            if (m_CanJmpScriptLableList != null)
            {
                m_CanJmpScriptLableList = null;
            }
            if (m_PlayRobotManage != null)
            {
                Dispose(m_PlayRobotManage);
            }
            if (m_PlayOrderList != null)
            {
                Dispose(m_PlayOrderList);
            }
            if (m_MasterNoList != null)
            {
                if (m_MasterNoList.Count > 0)
                {
                    for (int i = 0; i < m_MasterNoList.Count; i++)
                    {
                        //if (((TMasterList)(m_MasterNoList.Values[i])) != null)
                        //{
                        //    Dispose(((TMasterList)(m_MasterNoList.Values[i])));
                        //}
                    }
                }
                Dispose(m_MasterNoList);// 徒弟排名列表
            }
        }
    }
}
